package larc.dao.impl;

import java.util.List;

import org.hibernate.Session;

import larc.dao.intr.TipoUsuarioDao;
import larc.model.TipoUsuario;
import larc.util.HibernateUtil;

public class TipoUsuarioDaoImpl implements TipoUsuarioDao {

	@Override
	public void insertar(TipoUsuario tipousuario) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		try{
		    session.beginTransaction();
		    session.persist(tipousuario);
		    session.getTransaction().commit();
		    session.close();		    
		}catch(Exception e)
		{
			System.out.println("Error al insertar : " + e.getMessage());
			session.beginTransaction().rollback();
		}		
	}

	@Override
	public void actualizar(TipoUsuario tipousuario) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		try{
			session.beginTransaction();
			session.update(tipousuario);
			session.beginTransaction().commit();
		}catch(Exception e)
		{
			System.out.println("Error al actualizar : " + e.getMessage());
			session.beginTransaction().rollback();
		}
		
	}

	@Override
	public void eliminar(TipoUsuario tipousuario) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		try{
			session.beginTransaction();
			session.delete(tipousuario);
			session.beginTransaction().commit();
		}catch(Exception e)
		{
			System.out.println("Error al eliminar : " + e.getMessage());
			session.beginTransaction().rollback();
		}
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<TipoUsuario> listarTodo() {
		Session session = HibernateUtil.getSessionFactory().openSession();		
		return session.createQuery("from TipoUsuario").list();
	}

}
